import request from '@/utils/request'

/**
 * 获取新闻列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.size - 每页数量
 * @param {number} params.status - 状态
 * @param {number} params.categoryId - 分类ID
 * @param {string} params.keyword - 关键词
 */
export const getNewsList = (params) => {
  return request({
    url: '/api/news',
    method: 'get',
    params
  })
}

/**
 * 获取新闻详情
 * @param {number} id - 新闻ID
 */
export const getNewsDetail = (id) => {
  return request({
    url: `/api/news/${id}`,
    method: 'get'
  })
}

/**
 * 创建新闻
 * @param {Object} data - 新闻数据
 */
export const createNews = (data) => {
  return request({
    url: '/api/news',
    method: 'post',
    data
  })
}

/**
 * 更新新闻
 * @param {number} id - 新闻ID
 * @param {Object} data - 新闻数据
 */
export const updateNews = (id, data) => {
  return request({
    url: `/api/news/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除新闻
 * @param {number} id - 新闻ID
 */
export const deleteNews = (id) => {
  return request({
    url: `/api/news/${id}`,
    method: 'delete'
  })
}

/**
 * 发布新闻
 * @param {number} id - 新闻ID
 */
export const publishNews = (id) => {
  return request({
    url: `/api/news/${id}/publish`,
    method: 'post'
  })
}

/**
 * 点赞新闻
 * @param {number} id - 新闻ID
 */
export const likeNews = (id) => {
  return request({
    url: `/api/news/${id}/like`,
    method: 'post'
  })
}

/**
 * 获取热门新闻
 * @param {Object} params - 查询参数
 */
export const getHotNews = (params) => {
  return request({
    url: '/api/news/hot',
    method: 'get',
    params
  })
}
